home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 1 Issue 2
/
PDCD-1 - Issue 02.iso
/
_utilities
/
utilities
/
003
/
bulktext
/
!!ReadMe
next >
Wrap
Text File
|
1994-05-10
|
5KB
|
136 lines
BulkJoin and BulkSplit - background information
-----------------------------------------------
Read this to find out what BulkJoin and BulkSplit are for.
Up/downloading to/from mainframe
--------------------------------
I frequently use my Archimedes to edit IBM mainframe-based files. To
do this I first:
(a) Download the files from the mainframe to a PC (at work)
(b) Archive them (using the PKZIP utility on the PC) to reduce
space requirements
(c) Transfer the archive to my Archimedes (at home) via floppy
disc
(d) Extract the files from the archive using SparkFS
and then after editing, I:
(a) Re-archive the files using SparkFS
(b) Transfer the archive back to the PC
(c) De-archive the files (using the PKUNZIP utility on the PC)
(d) Upload the files to the mainframe.
This process seems cumbersome, but it does allow me to work on
the files at home in peace and quiet, and I end up getting at
least three times as much done!
I now regularly do this with quite large numbers of files
(sometimes up to a thousand). Of course, I didn't start off
uploading and downloading so many at once, but the number grew as
the mainframe application I was developing got bigger and bigger.
Unfortunately, as the number of files grew, the process also got
progressively slower. There seemed to be three main reasons for
this:
(1) Adding files to a SparkFS archive becomes very slow when
there are a large number of files already in the archive
(2) Adding files to a DOS directory likewise becomes very slow
when there are a large number of files already in the
directory
(3) Uploading and downloading a large number of small files is
slow because of the "start-up" overhead for each file.
I wrote "BulkJoin" and "BulkSplit", plus some simple mainframe
utilities, to alleviate some of these problems. The idea was to
combine all files of the same type into a single file, so that
the processes described above would now look like:
(a) Combine all files of same type into single file on mainframe
(b) Download single file to PC
(c) Archive file (using PKZIP) to reduce space requirements
(d) Transfer file to Archimedes via floppy disc
(e) De-archive file on Archimedes using SparkFS
(f) Split file into individual files using "BulkSplit"
and in reverse:
(a) Combine individual files into single file using "BulkJoin"
on the Archimedes
(b) Archive single file using SparkFS
(c) Transfer archive to PC via floppy disc
(d) De-archive single file using PKUNZIP
(e) Upload single file to mainframe
(f) Split file into individual files on mainframe
Although each process now has two additional steps, they are also
very much quicker. Quoting figures for "performance" improvements
is nearly always misleading, but I did find times of half-an-
hour or more reduced to just a few minutes. As an added bonus, I
also found that the archives were smaller -- it must be more
effective to compact large files than small ones.
I still have a problem with the fact that RISC OS ADFS
directories can only accommodate seventy-seven files. In the
past, I have used work-arounds which include:
(a) Storing the files in an archive, which has no such
limitation, but does incur a performance penalty
(b) Using a specialised version of "BulkSplit" which splits up
the files into multiple directories, using the file name to
decide which subdirectory should receive the file.
I found the latter work-around preferable, largely because it
imposes some organisation on such a large number of files. I
intend to implement this in a more general way in a later version
of "BulkSplit". "BulkJoin" can already combine files from
multiple subdirectories.
Note: During the uploading/downloading process, the data gets
translated from ASCII (the character code used on the ARC and PC) to
EBCDIC (the character code used on the IBM mainframe). This is
performed automatically by the upload/download software. Because the
file created by BulkJoin consist only of text (no binary data), it
survives this translation quite satisfactorily.
Other uses
----------
I have also found occasions when I want to edit a lot of files
together -- usually when I want to make a number of global
changes to all the files. In this case, I use BulkJoin to create
a single file, make the global changes to that file, and then use
BulkSplit to recreate the individual files again (of course, it
also helps to have a lot of RAM).
The files
---------
The directory "BulkText" contains:
!!ReadMe - this file
!BulkJoin - Archimedes application to combine individual
files
!BulkSplit - Archimedes application to recreate individual
files
SMPLS/ZIP - ZIP archive with example mainframe utilities
(packaged as archive to preserved DOS file
extensions)
Both !BulkJoin and !BulkSplit run under the Acorn DDE
environment, and you need the FrontEnd and TaskWindow modules
that come with the DDE (TaskWindow also comes with RISC OS3 and
both have appeared on a RISC USER magazine disk - July 92 Vol 5
No 7).
You will of course require mainframe utilities that are specific
to your mainframe environment. "Sample" contains sample EXECs for
use with the IBM VM CMS environment, plus a "BulkSplt" written in
C that should be portable to many environments.
Paul Witheridge - July 1993